home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
usr
/
bin
/
foo2lava-wrapper
< prev
next >
Wrap
Text File
|
2009-10-19
|
19KB
|
736 lines
#!/bin/sh
#* Copyright (C) 2003-2006 Rick Richardson
#*
#* This program is free software; you can redistribute it and/or modify
#* it under the terms of the GNU General Public License as published by
#* the Free Software Foundation; either version 2 of the License, or
#* (at your option) any later version.
#*
#* This program is distributed in the hope that it will be useful,
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#* GNU General Public License for more details.
#*
#* You should have received a copy of the GNU General Public License
#* along with this program; if not, write to the Free Software
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#*
#* Authors: Rick Richardson <rick.richardson@comcast.net>
VERSION='$Id: foo2lava-wrapper.in,v 1.39 2009/05/11 17:35:55 rick Exp $'
#
# Printer Notes:
#
# LAVAFLOW:
# Konica Minolta magicolor 2530 DL - -z0
# Konica Minolta magicolor 2490 MF - -z0
# Xerox Phaser 6115MFP - -z0
# Konica Minolta magicolor 1600W - -z2
# Konica Minolta magicolor 1680MF - -z2
# Konica Minolta magicolor 1690MF - -z2
#
# OPL:
# Konica Minolta 2480 MF - -z1
#
PROGNAME="$0"
BASENAME=`basename $PROGNAME`
PREFIX=/usr
SHARE=$PREFIX/share/foo2lava
PATH=$PATH:/sw/bin:/opt/local/bin
#
# Log the command line, for debugging and problem reports
#
if [ -x /usr/bin/logger -o -x /bin/logger ]; then
logger -t "$BASENAME" -p lpr.info -- "foo2lava-wrapper $@" </dev/null
fi
usage() {
cat <<EOF
Usage:
$BASENAME [options] [ps-file]
Foomatic printer wrapper for the foo2lava printer driver.
This script reads a Postscript ps-file or standard input
and converts it to LAVAFLOW printer format.
Normal Options:
-c Print in color (else monochrome)
-C colormode Colormode [$COLORMODE]
1=Photos, 2=Photo and text, 3=Graphics and text
10=ICM color profile (using -G *.icm file)
-d duplex Duplex code to send to printer [$DUPLEX]
1=off, 2=longedge, 3=shortedge
-m media Media code to send to printer [$MEDIA]
1=standard 4=transparency 20=thick stock 22=envelope
23=letterhead 25=postcard 26=labels 27=recycled
28=glossy
-p paper Paper code [$PAPER]
1=executive 2=letter 3=legal 25=A5 26=A4 45=B5jis
65=B5iso 80=envMonarch 81=env#10 90=envDL 91=envC5
92=envC6 835=4x6\" 837=10x15cm
-n copies Number of copies [$COPIES]
-r <xres>x<yres> Set device resolution in pixels/inch [$RES]
-s source Source code to send to printer [$SOURCE]
1=upper, 2=lower, 4=manual, 7=auto
Code numbers may vary with printer model.
-t Draft mode. Every other pixel is white.
-2/-3/-4/-6/-8/-10/-12/-14/-15/-16/-18
Print with N-up (requires psutils)
-o orient For N-up: -op is portrait, -ol is landscape, -os is seascape.
Printer Tweaking Options:
-u <xoff>x<yoff> Set offset of upper left printable in pixels [varies]
-l <xoff>x<yoff> Set offset of lower right printable in pixels [varies]
-L mask Send logical clipping values from -u/-l in ZjStream [3]
0=no, 1=Y, 2=X, 3=XY
-P Do not output START_PLANE codes. May be needed by some
monochrome-only printers.
-X padlen Add extra zero padding to the end of BID segments [16]
-z model Model: 0=2530DL or 2=1600W (LAVAFLOW) or 1=2480MF (OPL) [0]
Color Tweaking Options:
-g gsopts Additional options to pass to Ghostscript, such as
-dDITHERPPI=nnn, etc. May appear more than once. []
-G profile.icm Convert profile.icm to a Postscript CRD using icc2ps and
adjust colors using the setcolorrendering PS operator.
$SHARE/icm/ will be searched for profile.icm.
-I intent Select profile intent from ICM file [$INTENT]
0=Perceptual, 1=Colorimetric, 2=Saturation, 3=Absolute
-G gamma-file.ps Prepend gamma-file to the Postscript input to perform
color correction using the setcolortransfer PS operator.
Debugging Options:
-S plane Output just a single color plane from a color print [all]
1=Cyan, 2=Magenta, 3=Yellow, 4=Black
-D lvl Set Debug level [$DEBUG]
-V $VERSION
EOF
exit 1
}
#
# Report an error and exit
#
error() {
echo "$BASENAME: $1" >&2
exit 1
}
dbgcmd() {
if [ $DEBUG -ge 1 ]; then
echo "$@" >&2
fi
"$@"
}
#
# N-up-ify the job. Requires psnup from psutils package
#
nup() {
case "$NUP" in
[2368]|1[0458])
tr '\r' '\n' | psnup $NUP_ORIENT -d2 -$NUP -m.3in -p$paper -q
;;
[49]|1[26])
tr '\r' '\n' | psnup $NUP_ORIENT -d2 -$NUP -m.5in -p$paper -q
;;
*)
error "Illegal call to nup()."
;;
esac
}
#
# Process the options
#
# Try to use a local copy of GhostScript 8.14, if available. Otherwise,
# fallback to whatever the Linux distro has installed (usually 7.05)
#
# N.B. := operator used here, when :- would be better, because "ash"
# doesn't have :-
if gs.foo -v >/dev/null 2>&1; then
GSBIN=${GSBIN:-gs.foo}
else
GSBIN=${GSBIN:-gs}
fi
CMDLINE="$*"
DEBUG=0
DUPLEX=1
COLOR=
COLORMODE=default
MODEL=0
QUALITY=1
QUALITY=wts
MEDIA=0
COPIES=1
test -r /etc/papersize && PAPER=$(cat /etc/papersize)
test "$PAPER" || PAPER=2
RES=1200x600
SOURCE=255
NUP=
CLIP_UL=
CLIP_LR=
CLIP_LOG=
BC=
AIB=
NOPLANES=
COLOR2MONO=
GAMMAFILE=default
INTENT=0
GSOPTS=
EXTRAPAD=
SAVETONER=
NUP_ORIENT=
GSDEV=-sDEVICE=pbmraw
# What mode to use if the user wants us to pick the "best" mode
case `$GSBIN --version` in
7*) DEFAULTCOLORMODE=10
DEFAULTCOLORMODE=2
DEFAULTCOLORMODE=10
;;
8.1*)
QUALITY=1
DEFAULTCOLORMODE=10
;;
*) DEFAULTCOLORMODE=2
DEFAULTCOLORMODE=10
;;
esac
while getopts "1:23456789o:b:cC:d:g:l:u:L:m:n:p:q:r:s:tz:ABS:D:G:I:PX:Vh?" opt
do
case $opt in
b) GSBIN="$OPTARG";;
c) COLOR=-c;;
d) DUPLEX="$OPTARG";;
g) GSOPTS="$GSOPTS $OPTARG";;
m) MEDIA="$OPTARG";;
n) COPIES="$OPTARG";;
p) PAPER="$OPTARG";;
q) QUALITY="$OPTARG";;
r) RES="$OPTARG";;
s) SOURCE="$OPTARG";;
t) SAVETONER="-t";;
z) MODEL="$OPTARG";;
l) CLIP_LR="-l $OPTARG";;
u) CLIP_UL="-u $OPTARG";;
L) CLIP_LOG="-L $OPTARG";;
A) AIB=-A;;
B) BC=-B;;
C) COLORMODE="$OPTARG";;
S) COLOR2MONO="-S$OPTARG";;
D) DEBUG="$OPTARG";;
G) GAMMAFILE="$OPTARG";;
I) INTENT="$OPTARG";;
P) NOPLANES=-P;;
X) EXTRAPAD="-X $OPTARG";;
[234689]) NUP="$opt";;
[57]) error "Can't find acceptable layout for $opt-up";;
1) case "$OPTARG" in
[024568]) NUP="1$OPTARG";;
*) error "Can't find acceptable layout for 1$OPTARG-up";;
esac
;;
o) case "$OPTARG" in
l*) NUP_ORIENT=-l;;
s*) NUP_ORIENT=-r;;
p*|*) NUP_ORIENT=;;
esac;;
V) echo "$VERSION"; foo2lava -V; foo2zjs-pstops -V; exit 0;;
h|\?)
if [ "$CMDLINE" != "-?" -a "$CMDLINE" != -h ]; then
echo "Illegal command:"
echo " $0 $CMDLINE"
echo
fi
usage;;
esac
done
shift `expr $OPTIND - 1`
#
# If there is an argument left, take it as the file to print.
# Else, the input comes from stdin.
#
if [ $# -ge 1 ]; then
if [ "$LPJOB" = "" ]; then
: # LPJOB="$1"
fi
exec < $1
fi
#
# Select the ghostscript device to use
#
if [ "" = "$COLOR" ]; then
GSDEV=-sDEVICE=pbmraw
else
GSDEV=-sDEVICE=bitcmyk
fi
case "$GAMMAFILE" in
default)
if [ $MODEL = 0 ]; then
GAMMAFILE=km2530-jconner-d50.icm
else
GAMMAFILE=km-1600-rgb-392-bpp1.icm
fi
;;
none) GAMMAFILE=;;
esac
#
case "$QUALITY" in
0)
GSOPTS="-dCOLORSCREEN $GSOPTS"
;;
1)
GSOPTS="-dCOLORSCREEN $GSOPTS"
;;
2)
GSOPTS="-dMaxBitmap=500000000 $GSOPTS"
;;
wts)
GSOPTS="-dCOLORSCREEN -dMaxBitmap=500000000 $GSOPTS"
;;
esac
#
# Validate model code
#
case "$MODEL" in
0|1|2) ;;
*) error "Unknown model code $MODEL";;
esac
#
# Validate media code
#
case "$MEDIA" in
0|plain) MEDIA=0; if [ $MODEL = 1 ]; then MEDIA=plain; fi;;
4|transparency) MEDIA=4; if [ $MODEL = 1 ]; then MEDIA=transparency; fi;;
20|thickstock) MEDIA=20; if [ $MODEL = 1 ]; then MEDIA=cardstock; fi;;
22|envelope) MEDIA=22; if [ $MODEL = 1 ]; then MEDIA=envelope; fi;;
23|letterhead) MEDIA=23; if [ $MODEL = 1 ]; then MEDIA=stationery-letterhead; fi;;
25|postcard) MEDIA=25; if [ $MODEL = 1 ]; then MEDIA=photographic-matte; fi;;
26|labels) MEDIA=26; if [ $MODEL = 1 ]; then MEDIA=labels; fi;;
27|recycled) MEDIA=27; if [ $MODEL = 1 ]; then MEDIA=plain; fi;;
28|glossy) MEDIA=28; if [ $MODEL = 1 ]; then MEDIA=photographic-glossy; fi;;
[0-9]*) ;;
*) error "Unknown media code $MEDIA";;
esac
#
# Validate source (InputSlot) code
#
case "$SOURCE" in
1|tray1) SOURCE=1;;
4|tray2) SOURCE=4;;
255|auto) SOURCE=255;;
[0-9]*) ;;
*) error "Unknown source code $SOURCE";;
esac
#
# Validate Duplex code
#
case "$DUPLEX" in
1|off|none) DUPLEX=1;;
2|long*) DUPLEX=2;;
3|short*) DUPLEX=3;;
[0-9]*) ;;
*) error "Unknown duplex code $DUPLEX";;
esac
#
# Validate Resolution
#
case "$RES" in
600x600) ;;
1200x600) ;;
2400x600) ;;
*) error "Illegal resolution $RES";;
esac
#
# Figure out the paper dimensions in pixels/inch, and set the
# default clipping region. Unfortunately, this is a trouble
# area for ZjStream printers. Various versions of ZjS print
# engines react differently when asked to print into their
# unprintable regions.
#
set_clipping() {
ulx=$1; uly=$2
lrx=$3; lry=$4
# Set clipping region if it isn't already set
if [ "$CLIP_UL" = "" ]; then
case "$RES" in
600x600) ulx=`expr $ulx / 2`;;
2400x600) ulx=`expr $ulx \* 2`;;
esac
CLIP_UL="-u ${ulx}x${uly}"
fi
if [ "$CLIP_LR" = "" ]; then
case "$RES" in
600x600) lrx=`expr $lrx / 2`;;
2400x600) lrx=`expr $lrx \* 2`;;
esac
CLIP_LR="-l ${lrx}x${lry}"
fi
}
case "$PAPER" in
Custom*)
case "$PAPER" in
Custom\.[0-9]*\x[0-9]*)
XDIM=`echo "$PAPER" | sed -e 's/Custom\.//' -e 's/x.*//'`
YDIM=`echo "$PAPER" | sed -e 's/Custom\.//' -e 's/.*x//'`
;;
*)
#%%BeginFeature: *CustomPageSize True
#216
#360
#0
#0
#0
#pop pop pop pop pop
#%%BeginFeature: *CustomPageSize True
#792.000000 612.000000 1 0.000000 0.000000
#pop pop pop pop pop
if [ $DEBUG = 0 ]; then
TMPFILE=/tmp/cus$$
else
TMPFILE=/tmp/custom.ps
fi
cat >$TMPFILE
exec <$TMPFILE
tmp=`head -n 10000 $TMPFILE \
| sed -n '/CustomPageSize/{n;p;n;p;}' \
| tr '\n' ' '`
case "$tmp" in
[0-9]*\ [0-9]*)
XDIM=`echo "$tmp" | sed 's/ .*//'`
YDIM=`echo "$tmp" | sed -e 's/^[^ ]* //' -e 's/ .*//'`
;;
*)
if [ $DEBUG = 0 ]; then rm -f $TMPFILE; fi
error "Custom page size [XY]DIM != 1-99999"
;;
esac
;;
esac
xmm=`dc -e "$XDIM 25.4 * 36 + 72/p"`
XDIM=`dc -e "$XDIM 1200* 72/p"`
ymm=`dc -e "$YDIM 25.4 * 36 + 72/p"`
YDIM=`dc -e "$YDIM 600* 72/p"`
PAPER=101; paper=letter;
MEDIA=20
set_clipping 2 100 2 100
if [ $MODEL = 1 ]; then PAPER=custom_size_${xmm}x${ymm}mm; fi
;;
1|executive) PAPER=1; paper=executive; XDIM="8700"; YDIM="6300"
set_clipping 206 110 206 110
if [ $MODEL = 1 ]; then PAPER=na_executive_7.25x10.5in; fi
;;
2|letter) PAPER=2; paper=letter; XDIM="10200"; YDIM="6600"
set_clipping 204 100 204 100
if [ $MODEL = 1 ]; then PAPER=na_letter_8.5x11in; fi
;;
3|legal) PAPER=3; paper=legal; XDIM="10200"; YDIM="8400"
set_clipping 204 104 204 104
if [ $MODEL = 1 ]; then PAPER=na_legal_8.5x14in; fi
;;
25|a5|A5) PAPER=25; paper=a5; XDIM="6992"; YDIM="4960"
set_clipping 216 112 216 112
if [ $MODEL = 1 ]; then PAPER=iso_a5_148x210mm; fi
;;
26|a4|A4) PAPER=26; paper=a4; XDIM="9920"; YDIM="7016"
set_clipping 208 100 208 100
if [ $MODEL = 1 ]; then PAPER=iso_a4_210x297mm; fi
;;
45|b5jis|B5jis) PAPER=45; paper=b5; XDIM="8598"; YDIM="6070"
set_clipping 204 107 202 107
if [ $MODEL = 1 ]; then PAPER=jis_b5_182x257mm; fi
;;
65|b5iso|B5iso) PAPER=65; paper=b5; XDIM="8314"; YDIM="5906"
set_clipping 206 105 204 105
;;
80|envMonarch) PAPER=80; paper=envMonarch;XDIM="4650"; YDIM="4500"
set_clipping 214 106 212 106
if [ $MODEL = 1 ]; then PAPER=na_monarch_3.875x7.5in; fi
;;
81|"env#10") PAPER=81; paper=env10; XDIM="4950"; YDIM="5700"
set_clipping 204 114 202 114
if [ $MODEL = 1 ]; then PAPER=na_number-10_4.125x9.5in; fi
;;
90|envDL) PAPER=90; paper=envDL; XDIM="5200"; YDIM="5200"
set_clipping 216 104 216 104
if [ $MODEL = 1 ]; then PAPER=iso_dl_110x220mm; fi
;;
91|envC5) PAPER=91; paper=envC5; XDIM="7650"; YDIM="5408"
set_clipping 210 112 208 112
if [ $MODEL = 1 ]; then PAPER=iso_c5_162x229mm; fi
;;
92|envC6) PAPER=92; paper=envC6; XDIM="5386"; YDIM="3826"
set_clipping 214 105 212 105
if [ $MODEL = 1 ]; then PAPER=iso_c6_114x162mm; fi
;;
835|photo4x6) PAPER=835; paper=photo4x6; XDIM="4800"; YDIM="3600"
set_clipping 224 104 224 104
;;
837|photo10x15) PAPER=837; paper=photo10x15; XDIM="4818"; YDIM="3590"
# Actually, 102x152
set_clipping 201 115 201 115
;;
*) error "Unimplemented paper code $PAPER";;
esac
# e.g. /usr/share/ghostscript/7.07/lib/gs_statd.ps
PAPERSIZE="-sPAPERSIZE=$paper";
case "$RES" in
600x600) XDIM=`expr $XDIM / 2`;;
1200x600) ;;
2400x600) XDIM=`expr $XDIM \* 2`;;
esac
DIM="${XDIM}x${YDIM}"
#
# Filter thru psnup if N-up printing has been requested
#
case $NUP in
[234689]|1[024568]) PREFILTER="nup";;
*) PREFILTER=cat;;
esac
if [ "$DEBUG" -ge 9 ]; then
PREFILTER="tee /tmp/$BASENAME.ps"
fi
#
# Overload -G. If the file name ends with ".icm" or ".ICM"
# then convert the ICC color profile to a Postscript CRD,
# then prepend it to the users job. Select the intent
# using the -I option.
#
create_crd() {
#
# Create a Postscript CRD
#
ICC2PS=$PREFIX/bin/foo2zjs-icc2ps
if [ -x $ICC2PS ]; then
case "$GAMMAFILE" in
none.icm | */none.icm)
;;
*)
if [ -x /usr/bin/logger ]; then
logger -t "$BASENAME" -p lpr.info -- \
"`basename $ICC2PS` -o $GAMMAFILE -t$INTENT > $ICCTMP.crd.ps"
fi
$ICC2PS -o $GAMMAFILE -t$INTENT > $ICCTMP.crd.ps 2>$ICCTMP.log \
|| error "Problem converting .ICM file to Postscript"
;;
esac
PSTOPS_OPTS="$PSTOPS_OPTS -c"
cat > $ICCTMP.usecie.ps <<-EOF
%!PS-Adobe-3.0
<</UseCIEColor true>>setpagedevice
EOF
if [ "$QUALITY" = wts ]; then
cat >> $ICCTMP.usecie.ps <<-EOF
<< /UseWTS true >> setuserparams
<<
/AccurateScreens true
/HalftoneType 1
/HalftoneName (Round Dot Screen) cvn
/SpotFunction { 180 mul cos exch 180 mul cos add 2 div}
/Frequency 137
/Angle 37
>> sethalftone
EOF
fi
cat > $ICCTMP.selcrd.ps <<-EOF
/Current /ColorRendering findresource setcolorrendering
EOF
case "$GAMMAFILE" in
none.icm | */none.icm) GAMMAFILE="$ICCTMP.usecie.ps";;
*) GAMMAFILE="$ICCTMP.usecie.ps $ICCTMP.crd.ps $ICCTMP.selcrd.ps";;
esac
else
GAMMFILE=
fi
}
if [ $DEBUG -gt 0 ]; then
ICCTMP=/tmp/icc
else
ICCTMP=/tmp/icc$$
fi
if [ "" = "$COLOR" ]; then
COLORMODE=
GAMMAFILE=
else
case "$COLORMODE" in
default) COLORMODE=$DEFAULTCOLORMODE;;
esac
fi
CRDBASE="$PREFIX/share/foo2zjs/crd"
case "$RES" in
600x600) SCREEN=screen1200.ps;;
1200x600) SCREEN=screen1200.ps;;
2400x600) SCREEN=screen2400.ps;;
esac
PSTOPS_OPTS="-n"
case "$COLORMODE" in
0|"")
# Monochrome
;;
10|icm)
# Use old ICM method
AIB=-A
BC=-B
case "$GAMMAFILE" in
none.icm | */none.icm)
create_crd
;;
*.icm|*.ICM|*.icc|*.ICC)
#
# Its really an .ICM file, not a gamma file.
#
# The file can be a full path name, or the name of a file in $SHARE/icm/
#
if [ -r "$GAMMAFILE" ]; then
create_crd
elif [ -r "$SHARE/icm/$GAMMAFILE" ]; then
GAMMAFILE="$SHARE/icm/$GAMMAFILE"
create_crd
else
GAMMAFILE=
fi
;;
esac
;;
1|photo)
# Photo
GAMMAFILE="$CRDBASE/prolog.ps"
GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr125,75-per.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
;;
2|graphics)
# Photo and Text
GAMMAFILE="$CRDBASE/prolog.ps"
#GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,75-per.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/kh.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
;;
3|text)
# Graphic and Text
GAMMAFILE="$CRDBASE/prolog.ps"
#GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,50-per.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/kx.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
;;
4|tonersave)
# Reduced toner
GAMMAFILE="$CRDBASE/prolog.ps"
GAMMAFILE="$GAMMAFILE $CRDBASE/2300w-1200@150-l250-kx,ucr100,0-per.crd"
GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
;;
*.crd)
GAMMAFILE="$CRDBASE/prolog.ps"
if [ -f $COLORMODE ]; then
GAMMAFILE="$GAMMAFILE $COLORMODE"
elif [ -f $CRDBASE/$COLORMODE ]; then
GAMMAFILE="$GAMMAFILE $CRDBASE/$COLORMODE"
else
error "Can't find CRD '$COLORMODE' in . or in $CRDBASE"
fi
GAMMAFILE="$GAMMAFILE $CRDBASE/$SCREEN"
;;
*)
error "Unknown color method '$COLORMODE'"
;;
esac
if [ "$COLOR" != "" -a "$QUALITY" = wts ]; then
PSTOPS_OPTS="$PSTOPS_OPTS -w"
fi
if [ "" != "$COLOR" ]; then
if [ "" = "$AIB" -a "" = "$BC" ]; then
# Faster, but can't handle AllIsBlack or BlackClears
: #GSDEV=-sDEVICE=pksmraw
else
# Can't handle different size pages
: #GSDEV=-sDEVICE=bitcmyk
fi
fi
#
# Figure out USERNAME
#
if [ "$LPUSER" != "" ]; then
USER="$LPUSER@$LPHOST"
else
USER=""
fi
#
# Main Program, just cobble together the pipeline and run it
#
# The malarky with file descriptors 1 and 3 is to avoid a bug in
# (some versions?) of Ghostscript where Postscript's stdout gets
# intermingled with the printer drivers output, resulting in
# corrupted image data.
#
GS="$GSBIN -q -dBATCH -dSAFER -dQUIET -dNOPAUSE"
foo2zjs-pstops $PSTOPS_OPTS | \
$PREFILTER \
| ($GS $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS \
-sOutputFile="|cat 1>&3" $GAMMAFILE -_ >/dev/null) 3>&1 \
| foo2lava -r$RES -g$DIM -p$PAPER -m$MEDIA -n$COPIES -d$DUPLEX -s$SOURCE \
-z$MODEL $COLOR $CLIP_UL $CLIP_LR $CLIP_LOG $SAVETONER \
-J "$LPJOB" -U "$USER" \
$BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD -D$DEBUG
#
# Log the command line, for debugging and problem reports
#
if [ -x /usr/bin/logger ]; then
logger -t "$BASENAME" -p lpr.info -- \
"$GSBIN $PAPERSIZE -g$DIM -r$RES $GSDEV $GSOPTS $GAMMAFILE"
logger -t "$BASENAME" -p lpr.info -- \
"foo2lava -r$RES -g$DIM -p$PAPER -m$MEDIA \
-n$COPIES -d$DUPLEX -s$SOURCE -z$MODEL $COLOR $CLIP_UL $CLIP_LR $CLIP_LOG \
$SAVETONER $BC $AIB $COLOR2MONO $NOPLANES $EXTRAPAD"
fi
#
# Remove cruft
#
if [ $DEBUG -eq 0 ]; then
for i in crd.ps log usecie.ps selcrd.ps
do
file="$ICCTMP.$i"
[ -f $file ] && rm -f $file
done
[ -f "$TMPFILE" ] && rm -f $TMPFILE
fi
exit 0